The JMX standard is used to administer software systems tailored by means of the Java programming language. With Java programs becoming executable on all types of equipment, from mobile telephones and other onboard equipment to network infrastructures and application servers in the J2EE platform (Java 2 Enterprise Edition), JMX is increasingly often replacing the SNMP (“Simple Network Management Protocol”) administration standard.
The JMX standard defines an architecture, services and an applications programming interface (API) for administering the resources of software systems. It has given rise to several implementations. The JMX standard is currently defined by the Java Specification Request 03 specification (cf. the Internet site http://java.sun.com/products/JavaManagement/).
In JMX, a resource to be administered is never accessed directly. It is administered by way of a particular Java software object dubbed an MBean (Management Bean), which “represents” this resource.
It is recalled that a software object is associated with attributes and operations. It constitutes an abstraction of a resource, for example an item of equipment, a component or a service.
An MBean is a software object associated with attributes and operations making it possible to administer said resource; within the framework of the present invention, these attributes and administration operations will be called “configuration elements”. The choice of the particular configuration elements that one wishes to associate with a resource is called the “instrumentation” of said resource.
An MBean may be registered (it is also said to be “exposed”) in an administration server, dubbed an MBeanServer, under a name making it possible to identify it. Such an MBeanServer provides a standard access means for performing administration acts on a resource represented by an MBean which it exposes. Specifically, exposure affords access to the attributes and to the administration operations associated with such an MBean.
This concept of MBean is for example defined in documents EP 909 057 and WO 00/77631.
JMX standardizes several services which are also represented by MBeans. Particular MBeans such as these are for example monitoring elements, which issue a notification as soon as they observe that an attribute of a resource is reaching a certain state.
JMX also standardizes the means of accessing an MBeanServer through connectors or adapters (Java Specification Request 160, JMX remote). It is thus possible to administer a system from a browser, via the HTTP protocol (“HyperText Transfer Protocol”), a remote Java client, via the remote invocation Java mechanism RMI (“Remote Method Invocation”) or else to change information and protocol model by interconnecting with other administration standards such as SNMP or WEBM/CIM.
JMX can be used to administer a Java application in an ad hoc or standardized manner.
In the ad hoc case, the information exposed to the administrators, the convention for designing the MBeans representing this information, their shareout across one or more MBeanServers and the connectors enabling access thereto are chosen freely.
In the standardized case, these choices are enframed within a standard. A typical case being the administration model defined for the J2EE platform (Java Specification Request 77), based on JMX, and the objective of which is to harmonize the administration services rendered by various application servers (e.g. Websphere from IBM or Weblogic from BEA). This model describes in particular the information exposed to the administrators, such as the generic J2EE concepts (J2EEServer, J2EEResources, EJB, etc.), and standardizes access to this information via a particular component, dubbed Management EJB (MEJB).
Some functionalities, not provided originally by the JMX API and its reference implementation, have given rise to extensions. Mention may in particular be made of the dynamic creation of proxyMBean proposed by products known in the field namely JDMK (Sun MicroSystem) or MX4J (cf.mx4j.sourceforge.net). This functionality makes it possible to cascade MBeanServers by exposing, in an MBeanServer, a proxyMBean representing an MBean exposed in another MBeanServer. Document WO0077632 may also be cited, which describes how to dynamically process Java objects, by introspection, so as to render them manipulable in the form of MBeans.
The JMX specification essentially details the administration of server side software systems. Client side, it standardizes only the access to the information exposed by these systems through MBeanServers or through connectors/adapters/MEJB in the case of distributed access.
To utilize this information, the client, that is to say the administration application, must perform various manipulations such as select the relevant information or subscribe to notification services signaling particular events (alarms, etc.). In certain cases, it must manage the addition of services not envisaged on the server side, such as monitoring (surveillance) of a particular attribute. He must also manage several connections if the information that he wishes to utilize is shared out among several systems. The ad hoc developments which result therefrom are specific to the client's requirement and depend on server side changes, like the names used to identify the information or the parameterization of the connections allowing access thereto. Certain administration consoles make it possible to automate these manipulations by static configuration, but do not permit dynamic reconfiguration.